package com.hth.core;

import com.alibaba.fastjson.JSONObject;

import java.sql.*;

public class SqlUtils {
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/stock?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    static final String USER = "root";
    static final String PASS = "root";

    public static SqlUtils getSqlUtils() {
        return sqlUtils;
    }

    private static final SqlUtils sqlUtils;

    private static final Connection conn = init();

    static {
        sqlUtils = new SqlUtils();
    }

    public SqlUtils() {

    }

    private static Connection init() {
        Connection conn = null;
        Statement stmt = null;
        try {
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);

            // 打开链接
//            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
        } catch (Exception e) {
            // 处理 JDBC 错误
            e.printStackTrace();
        }

        return conn;
    }

    public void closeConn(Connection conn) {
        try {
            if (conn != null) conn.close();
        } catch (SQLException se) {
            se.printStackTrace();
        }
    }

    public static Connection getConn() {
        return conn;
    }

    public static Statement getStatement() {
        try {
            return conn.createStatement();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }



    public static void main(String[] args) {
        // 获取mysql链接
        Statement statement = SqlUtils.getStatement();
        String sql;
        sql = "SELECT * FROM stock_info";
        try {
            ResultSet rs = statement.executeQuery(sql);
                        // 展开结果集数据库
            while(rs.next()){
                // 通过字段检索
                int id = rs.getInt("id");

                String name = rs.getString("stock_code");
//                String age = rs.getString("age");

                // 输出数据
                System.out.print("name: " + name);
//                System.out.print(", 姓名: " + name);
//                System.out.print(", 年龄: " + age);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            statement.close();
            conn.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
//        Statement stmt = null;
//        try{
//            // 注册 JDBC 驱动
//            Class.forName(JDBC_DRIVER);
//
//            // 打开链接
//            System.out.println("连接数据库...");
//            conn = DriverManager.getConnection(DB_URL,USER,PASS);
//
//            // 执行查询
//            System.out.println(" 实例化Statement对象...");
//            stmt = conn.createStatement();
//            String sql;
//            sql = "SELECT * FROM stock_info";
//            ResultSet rs = stmt.executeQuery(sql);
//
//            // 展开结果集数据库
//            while(rs.next()){
//                // 通过字段检索
//                int id = rs.getInt("id");
//
//                String name = rs.getString("stock_code");
////                String age = rs.getString("age");
//
//                // 输出数据
//                System.out.print("name: " + name);
////                System.out.print(", 姓名: " + name);
////                System.out.print(", 年龄: " + age);
//                System.out.print("\n");
//            }
//            // 完成后关闭
//            rs.close();
//            stmt.close();
//            conn.close();
//        } catch(Exception se){
//            // 处理 JDBC 错误
//            se.printStackTrace();
//        }// 处理 Class.forName 错误
//        finally{
//            // 关闭资源
//            try{
//                if(stmt!=null) stmt.close();
//            }catch(SQLException se2){
//            }// 什么都不做
//            try{
//                if(conn!=null) conn.close();
//            }catch(SQLException se){
//                se.printStackTrace();
//            }
//        }
//        System.out.println("连接数据库结束!");
    }
}
